/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.brasilerp.transportadora;

import java.util.ArrayList;
import java.util.List;

/**
 * Um pacote é transportavel
 * @author rgrosz
 */
public class Pacote {
    private List<ItemPacote> itens;
    private DestinoPacote destinoPacote;
    
    public Pacote(){
        this.itens = new ArrayList<ItemPacote>();
    }
    public void adicionarItem(ItemPacote item){
        itens.add(item);
    }
    
    public void removerItem(ItemPacote item){
        itens.remove(item);
    }

    void setDestinoPacote(DestinoPacote destinoPacote){
        this.destinoPacote = destinoPacote;
    }

    public void receberAssinaturaRecebimento(DestinoPacote destino) throws TransportadoraException{
        if(destino == null){
            TransportadoraException e = new TransportadoraException("Destino nao existe!");
            throw e;
        }
        if(this.destinoPacote == null){
            TransportadoraException e = new TransportadoraException("Não foi configurado destino para este pacote");            
            throw e;
        }
        if(destinoPacote.equals(destino)){
            destino.receber(itens);
        }else{
            throw new TransportadoraException("Destino não pode assinar recebimento pois não é o destino configurado no pacote");
        }
    }    
}
